package unq.tpi.persistencia.alumnos.dao.hbm;

import java.util.List;

import unq.tpi.persistencia.alumnos.arq.runner.HibernateRunner;
import unq.tpi.persistencia.alumnos.dao.AlumnoDAO;
import unq.tpi.persistencia.alumnos.model.Alumno;
import unq.tpi.persistencia.alumnos.model.Curso;
import unq.tpi.persistencia.alumnos.model.Materia;

import org.hibernate.Query;
import org.hibernate.Session;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;





public class AlumnoDAOHbm implements AlumnoDAO {
		
	
	public Alumno getPorLegajo(String legajo) {

		//
		Query query = HibernateRunner.currentSession().createQuery("FROM Persona WHERE legajo = :legajo");
		query.setString("legajo", legajo);

		return (Alumno)query.uniqueResult();
		
	}

	public void save(Alumno alumno) {
		HibernateRunner.currentSession().save(alumno);
	}

	public List<Alumno> getInscriptosA(Materia materia) {	
		Query query = HibernateRunner.currentSession().createQuery("Select a FROM Alumno as a INNER JOIN a.cursadas as ca  WHERE ca.materia  = :materiaBuscada   ");
		query.setEntity("materiaBuscada",materia);
		//Le decimos al compilador que esto que devolvemos  sera una list de alumnos
		return (List<Alumno>) query.list();
	}

	@Override
	public void delete(Alumno alumno) {
		HibernateRunner.currentSession().delete(alumno);
	}
}
